In the multimedia field and other related fields involving digitized data streams, including video content and the like for example, a user or application may desire to control the media streams in some fashion. As but one example, in video-on-demand systems, a user may desire to be able to issue commands from a network PC or "set-top box" to control playback of a selected movie title reposing at an audio/video server. Such control perhaps may desirably take the familiar form of conventional VCR transport commands, such as play, pause, stop, and record.
In yet another example in the broadcast industry, a TV studio may require the capability of transmitting a plurality of channels of video content and to interpose commercials at prescribed intervals. In such an application, user commands from a programming manager or automatic commands originating from pre-programmed user input in a program executing on an application server may, in like manner to the video-on-demand system VCR commands, be desired to facilitate the playback occurring at the appropriate desired times.
In prior such systems, it was conventional to be content with accepting non-deterministic response times for such commands. In other words, one might desire a command to be executed no later than perhaps one second after its issuance, however there was no assurance that this would happen.
Although this deficiency alone of simply not being able to count on VCR commands executing at a certain time is unacceptable in many applications, in some applications this problem is often exacerbated and compounded in a way not readily apparent. Continuing with the television studio example, it is a characteristic of the industry to reserve very precise timeslots or windows in which certain content is to air, such as station breaks and ids and commercials of predetermined lengths.
Due to network constraints and the like, it is completely unacceptable only to know that a command for example to "Play" will occur before n milliseconds so that it is assured of occurring on or slightly before the hour.
Rather, it may be highly desirable to provide for both a lower bound as well as an upper bound so the station may satisfy commercial customers and maintain precise scheduling of program content and commercials. Commercial airtime is notoriously extremely expensive and often can be valued in the thousands of dollars per second. Inadvertent clipping of commercials or program time can result in irate sponsors, and expensive "make goods" being offered to the customer, not to mention irate viewers who have had the beginning of their favorite show "walked on" by an ill-timed commercial. Thus, some mechanism would be desirable to ensure that VCR commands would execute within a known, deterministic range or window of, for example, 900 milliseconds-1100 milliseconds.
In such multimedia systems, it is also conventional to handle multiple output data streams. Accordingly, it is also conventional to provide in such systems a plurality of output video decoders. Yet an additional serious problem which arises in such systems relative to these decoders is that in such conventional systems, decoders essentially compete for the same resourcees while possibly running at different rates. In such a case, instances frequently arise in which some of the cards may get starved by other cards wherein they esssentially have no data stream data to output. This obviously severely impacts the throughput of the entire system. Accordingly, it further would be desirable to provide an efficient mechanism for minimizing the chances of starvation of such decoders.
Still another problem arises in conventional implementations of multimedia systems. Typically in such systems a bus protocol is provided, interfacing between various output decoder cards and the data stream system. A representative such bus is the familiar small computer system interface or "SCSI" bus. Such buses have traditionally been "unfair" in the sense that they exhibit the undesirable property that devices with high SCSI priorities can monopolize the bus when bus utilization becomes high. This contention from the SCSI bus seriously impacts the ability to schedule I/O commands in an optimal sequence. Accordingly, mechanisms were also sorely needed for enforcing bus fairness in such multimedia systems.